package com.sakura.system.controller.xycontroller;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
//import com.xiaoxu.cinema.pojo.Card;
//import com.xiaoxu.cinema.pojo.CinemaResult;
//import com.xiaoxu.cinema.pojo.Movie;
//import com.xiaoxu.cinema.pojo.PageResult;
//import com.xiaoxu.cinema.service.MovieService;
//import com.xiaoxu.cinema.pojo.*;
import com.sakura.system.entity.xy.Card;
import com.sakura.system.entity.xy.CinemaResult;
import com.sakura.system.entity.xy.Movie;
import com.sakura.system.entity.xy.PageResult;
import com.sakura.system.service.impl.xyimpl.MovieService;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.List;
@CrossOrigin
@RestController
@RequestMapping("${app.router.url}")
public class MovieController {
    @Resource
    MovieService movieService;
    /**
     * 添加电影票数据，并返回添加后的全部电影票数据。因为电影票的id需要在服务端生成。
     * @param movie 包含电影票信息的对象，将被插入到数据库中。
     * @return 返回一个包含全部电影票数据的结果对象。
     */
    @RequestMapping("insertMovie")
    public CinemaResult insertMovie(Movie movie){
        // 调用电影服务层的方法，插入电影票信息
        return movieService.insertMovie(movie);
    }

    /**
     * 获取电影票数据的控制器方法。
     * 请求参数：
     * - pageIndex：当前页码，字符串类型
     * - pageSize：每页显示的数量，字符串类型
     * 返回值：包含电影列表和总记录数的CinemaResult对象
     */
    @RequestMapping("getMovie")
    public CinemaResult getMovie(String pageIndex, String pageSize){
        // 初始化分页结果对象
        PageResult pageResult = new PageResult();
        // 使用PageHelper插件开始分页
        PageHelper.startPage(Integer.parseInt(pageIndex), Integer.parseInt(pageSize));
        // 从电影服务层获取电影数据
        List lists = movieService.getMovieData();
        // 使用PageInfo包装分页信息
        PageInfo<Card> pageInfo = new PageInfo<>(lists);
        // 设置分页结果的列表和总页数
        pageResult.setList(pageInfo.getList());
        pageResult.setPageTotal(pageInfo.getTotal());
        // 返回包装后的分页结果
        return CinemaResult.ok(pageResult);
    }

    /**
     * //删除电影数据，请求参数：movieId
     * export const delMovie = query=>{
     *     return request({
     *         url:'delMovie',
     *         method:'get',
     *         params:query
     *     });
     * };

     */
    @RequestMapping("delMovie")
    public CinemaResult delMovie(String movieId){
        movieService.delMovie(movieId);
        return CinemaResult.ok();
    }
    /**
     *      * //修改电影数据，请求参数:movieId、name、price、time
     *      * export const modifyMovie = query=>{
     *      *     return request({
     *      *         url:'modifyMovie',
     *      *         method:'get',
     *      *         params:query
     *      *     });
     *      * };
     */
    @RequestMapping("modifyMovie")
    public CinemaResult modifyMovie(Movie movie){
        return movieService.modifyMovie(movie);
    }
}
/*
*
* //删除电影数据，请求参数：movieId
export const delMovie = query=>{
    return request({
        url:'delMovie',
        method:'get',
        params:query
    });
};
//修改电影数据，请求参数:movieId、name、price、time
export const modifyMovie = query=>{
    return request({
        url:'modifyMovie',
        method:'get',
        params:query
    });
};*/